ProcessRequest.aspx.vb
++++++++++++++++++++++++++++

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not Page.IsPostBack Then
            If Context.Current.Request.Form.Count > 0 Then
                Try
                    Dim log As New WebRequestLog
                    log.Add("MerchantNumber", Convert.ToString(Context.Current.Request.Form("MerchantNumber")))
                    log.Add("OrderNumber", Convert.ToString(Context.Current.Request.Form("OrderNumber")))
                    log.Add("ServiceCode", Convert.ToString(Context.Current.Request.Form("ServiceCode")))
                    log.Add("Ref1", Convert.ToString(Context.Current.Request.Form("Ref1")))
                    log.Add("Ref2", Convert.ToString(Context.Current.Request.Form("Ref2")))
                    log.Add("Ref3", Convert.ToString(Context.Current.Request.Form("Ref3")))
                    log.Add("Ref4", Convert.ToString(Context.Current.Request.Form("Ref4")))
                    log.Add("Ref5", Convert.ToString(Context.Current.Request.Form("Ref5")))
                    log.Add("Language", Convert.ToString(Context.Current.Request.Form("Language")))
                    log.Add("Currency", Convert.ToString(Context.Current.Request.Form("Currency")))
                    log.Add("AmountExp10", Convert.ToString(Context.Current.Request.Form("AmountExp10")))
                    log.Add("Amount", Convert.ToString(Context.Current.Request.Form("Amount")))
                    log.Add("RespCode", Convert.ToString(Context.Current.Request.Form("RespCode")))
                    log.Add("AuthCode", Convert.ToString(Context.Current.Request.Form("AuthCode")))
                    log.Add("Status", Convert.ToString(Context.Current.Request.Form("Status")))
                    log.WriteLog()
                    log = Nothing
                Catch ex As Exception
                    Throw ex
                End Try
            End If

            Call ProcessingTextFile()
        End If
    End Sub



WebRequestLog class
+++++++++++++++++++++++++++

Public Class WebRequestLog
    Private Inputs As NameValueCollection = New NameValueCollection

    Public Sub Add( _
        ByVal name As String, _
        ByVal value As String)
        Me.Inputs.Add(name, value)
    End Sub

    Public Function WriteLog() As Boolean
        Dim context As HttpContext = HttpContext.Current
        Dim format As System.IFormatProvider = New System.Globalization.CultureInfo("en-GB")
        Dim current As String = DateTime.Today.ToString("yyyy.MM.dd", format)
        Dim path As String = context.Server.MapPath(String.Concat(New String() {ConfigurationSettings.AppSettings("Logs"), "WebRequest-log", "@", current, ".log"}))
        Dim now As DateTime = DateTime.Now
        Dim nowGMT As DateTime = now.ToUniversalTime()
        Dim diff As TimeSpan = now.Subtract(nowGMT)
        Dim num As Integer = diff.Hours
        Dim adding As String

        If (num > 0) Then
            adding = "+"
        Else
            adding = ""
        End If

        Dim userAgent As String = context.Request.UserAgent
        Dim absoluteUri As String = context.Request.Url.AbsoluteUri
        Dim remote As String = context.Request.ServerVariables.Item("REMOTE_ADDR")
        Dim _time As String = String.Concat(New String() {DateTime.Now.Year.ToString, ".", DateTime.Now.Month.ToString, ".", DateTime.Now.Day.ToString, "@", DateTime.Now.Hour.ToString, ":", DateTime.Now.Minute.ToString, ":", DateTime.Now.Second.ToString, " (GMT ", adding, num.ToString, ")"})

        Dim builder As New StringBuilder
        Dim values() As String

        If (Inputs.Count > 0) Then
            Dim i As Integer = 0
            For Each key As String In Inputs.Keys
                builder.AppendFormat("{0}{1}{2}", "   """, key, ": ")
                values = Inputs.GetValues(key)
                For Each value As String In values
                    builder.AppendFormat("{0}{1}", value, """")
                Next
                If (i < Inputs.Count - 1) Then
                    builder.Append(", ")
                End If
                builder.Append(Environment.NewLine)

                i += 1
            Next
        End If

        builder.Append("##")

        Try
            Dim writer As New StreamWriter(path, True)
            writer.WriteLine(String.Concat(New String() {"## ", remote, " - ", _time, " """, absoluteUri, """ """, userAgent, """ ## "}))
            writer.WriteLine((builder.ToString))
            writer.Close()
        Catch ex As Exception
            Throw ex
        End Try

    End Function

End Class